iT邦幫忙

2026 iThome 鐵人賽

DAY 30
0
佛心分享-IT 人職涯歷練

在AI 時代的碰撞下~當前端工程師開始碰上後端又到了雲服務的旅程系列 第 30 篇

Day 30 - Node.js 進階操作 Middleware、bcrypt、JWT 身份驗證

  • 分享至 

  • xImage
  •  

今天是最後一天挑戰~感謝六角用禮物吸引我 XDD 讓我願意開始這 30 天每天寫文章,雖然都有借 AI 輔助之力
不過這 30 天我養成每天學習一個小知識點,幫助自己建立習慣!

有的時候會覺得阿任務好大~阿好難啊~
其實先行動才是關鍵!最的好不好不重要,要先行動才會知道做的好不好,也才有機會可以調整
每天寫一篇文章(雖然覺得自己沒有寫得很好)
不過心裡其實很踏實跟充實唷!
如果可以~還會想要持續這個習慣下去~~(希望啦


最後一天挑戰,但應該不是我文章的最後一篇了
我今天想要來談談登入驗證流程
像是: 當使用者從 React 前端註冊或登入時,Node.js 後端要如何檢查資料、保護密碼、驗證身分,並處理錯誤?

一、先看懂完整的登入驗證流程
https://ithelp.ithome.com.tw/upload/images/20261014/20184323YNVWFc0Fao.png

這裡有三個重要角色:

  • Middleware:守門員,決定請求是否能繼續執行。
  • bcrypt:保護使用者密碼。
  • JWT:讓後端可以驗證登入後的使用者身分。

二、Middleware 機制:(req, res, next)
Middleware(中介軟體)是 Express 在接收到 HTTP Request 之後、正式執行 API 業務邏輯之前,可以先執行的函式。

1.三個參數是什麼?
https://ithelp.ithome.com.tw/upload/images/20261014/20184323k8JI8rMMyo.png

2.基本範例

const express = require("express");
const app = express();

app.use((req, res, next) => {
  console.log("第一個 Middleware");
  next();
});

app.get("/users", (req, res) => {
  console.log("執行 users API");

  res.json({ message: "成功" });
});

app.listen(3000);

當瀏覽器呼叫:GET /users

終端機會輸出:

第一個 Middleware
執行 users API

原因是 Middleware 呼叫了 next()。

3.next() 非常重要

app.use((req, res, next) => {
  console.log("檢查使用者");
  next();
});

如果沒有 next(),也沒有使用 res 結束回應,請求可能一直等待。

三種常見情況:

  • next():繼續執行下一個 Middleware。
  • res.json():結束這次請求並回傳 JSON。
  • next(error):跳到錯誤處理流程。

下一篇繼續介紹~我覺得登入驗證跟密碼保護這一段很有趣
希望我的下一篇可以是明天(?
(雖然最近工作有點忙)


上一篇
Day 29 - Node.js 進階操作(Cookie / Header / Axios)-3
系列文
在AI 時代的碰撞下~當前端工程師開始碰上後端又到了雲服務的旅程 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言